#ifndef _SPE_TYPEDEF_
#define _SPE_TYPEDEF_

#include "QDP.h"
#include "CPxTime2a.h"

typedef union _SPE { //继电保护装置成组启动事件 
	struct {
		#if (IEC_ENDIAN  == IEC_LITTLE_ENDIAN)
			uint8_t GS  : 1 ; //0=无总启动
			uint8_t SL1 : 1 ; //0=A相保护未启动
			uint8_t SL2 : 1 ; //0=B相保护未启动
			uint8_t SL3 : 1 ; //0=C相保护未启动
			uint8_t SIE : 1 ; //0=接地电流保护未启动
			uint8_t SRD : 1 ; //0=反向保护未启动
		#else
			uint8_t IV  : 1 ; //IV（1bit） ＝0：有效 ＝1：无效
			uint8_t NT  : 1 ; //NT （1bit）＝ 0：当前值 ＝1：非当前值
			uint8_t SB  : 1 ; //SB（1bit）＝ 0：未被取代 ＝1：被取代
			uint8_t BL  : 1 ; //BL（1bit）＝ 0：未被闭锁 ＝1：被闭锁
			uint8_t EI  : 1 ; //EI（1bit）＝ 0：动作时间有效;＝1：动作时间无效
			uint8_t RES : 1 ; //RES（3bit）：保留
			uint8_t ES  : 2 ; //ES（2bit） ＝0＝3：不确定 ＝1： OFF（开）＝2： ON（合）
		#endif
	}part;

	uint8_t val;
}SPE_t;


//M_EP_TB_1
typedef struct SPE24T {
    SPE_t SPE ;
    QDP_t QDP ;
    struct CP16Time2a acttime ;
    struct CP24Time2a time ;
}
SPE24T_t ;



//M_EP_TE_1
typedef struct SPE56T {
    SPE_t SPE ;
    QDP_t QDP ;
    struct CP16Time2a acttime ;
    struct CP56Time2a time ;
}
SPE56T_t ;

#endif
